#include<stdlib.h>
#include<stdint.h>

//======================CPU==================

typedef struct CPU_STRUCT
{
    union//cs app 120页，al、ax、eax、rax是共享低地址的，所以使用union关键字实现，这里仅仅实现rax的，后面rbx~rip都是这样的
    {
        struct{//struct中的内存都是由低到高依次分配的
            uint8_t al;    //低地址
            uint8_t ah;    //高地址
        };
        uint16_t ax;
        uint32_t eax;
        uint64_t rax;
    };

    //寄存器
    uint64_t rbx;
    uint64_t rcx;
    uint64_t rdx;
    uint64_t rsi;
    uint64_t rdi;
    uint64_t rbp;
    uint64_t rsp;
    uint64_t rip; //pc programm count 指向内存命令的

} cpu_t;

cpu_t cpu;//在cpu.h中定义该对象